Embodiments of the present invention relate generally to configuring application programs and more particularly to automating setup of configuration data for an application program.
Companies using packaged enterprise software or other large-scale applications to run their businesses typically have implementation teams that configure their software before they use it. Many implementations share common configuration settings. For example, companies may have to incorporate legal requirements in their business practices, or they may have similar or identical processes due to their industry, size, or other factors.
There are several ways an implementation project team may configure an instance of a software package to meet these requirements. When experienced, outside consultants are hired to help with configuration, they may have documentation, spreadsheets, or knowledge from prior implementations that are relevant to the new customer. If the customer implements without outside help, they may ask other companies, use documentation and examples, or create configuration through trial and error.
These methods for creating configuration typically rely on the past experience of the implementer, particularly in the case of hiring outside consultants. The implementer must remember, capture or document the relevant configuration settings, manually extracting those parameters which are useful for a new implementation and excluding those which are specific to the former customer. In addition, the consultant must remember, capture or document the complete set of configuration settings to repeat the configuration.
In addition, the capturing of configuration from a prior implementation is a manual process which requires knowledge of how configuration is represented in the application, how it can be extracted out and in what forms it can be loaded into a new instance. Some software packages have tools to load data from spreadsheets into the software instance. However, these specific capabilities are not comprehensive and do not enforce relationships or completeness. Configuration is typically held in multiple, heterogeneous constructs, and extraction requires knowledge of these constructs, how they can be accessed, extracted, persisted and loaded as well as the relationships and components which, taken as a whole, would provide a complete and coherent configuration set.
Current solutions require knowledge, outside of the software package, of the ways in which configuration is stored and accessed and the relationships between elements of configuration. The loading of configuration requires manual steps, using disparate technologies, and managing completeness across multiple tasks. This is a complex problem to solve, and manual, individual efforts are prone to errors and omissions. Hence, there is a need for methods and systems that allow for automating setup of configuration data for an application program.